#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>
#include<string>

using namespace std;

//int main()
//{
//	string s("hello world");
//	cout << typeid(s.cbegin()).name() << endl;
//	return 0;
//}



//int main()
//{
//	string s("hello world");
//	string::const_iterator it = s.cbegin();
//	while (it != s.cend())
//	{
//		cout << *it;
//		it++;
//	}
//	cout << endl;
//	string::const_reverse_iterator rit = s.crbegin();
//	while (rit != s.crend())
//	{
//		cout << *rit;
//		rit++;
//	}
//
//	return 0;
//}




//int main()
//{
//	string s("hello world");
//	cout << s.size() << endl;
//	cout << s.length() << endl;
//
//	return 0;
//}



//int main()
//{
//	string s;
//	cout << s.max_size() << endl;
//
//	return 0;
//}



//int main()
//{
//	string s("asdf");
//	cout << s.size() << endl;
//	cout << s.capacity() << endl;
//
//	return 0;
//}



//int main()
//{
//	string s("hello world");
//	s.resize(7);
//	cout << s << endl;
//
//	return 0;
//}




//int main()
//{
//	string s("hello world");
//	cout << s.size() << endl;
//	cout << s.capacity() << endl;
//
//	s.resize(13, 'a');
//	cout << s << endl;
//
//	return 0;
//}


//int main()
//{
//	string s("hello world");
//	cout << s.size() << endl;
//	cout << s.capacity() << endl;
//
//	s.resize(13);
//	cout << s << endl;
//
//	return 0;
//}



//int main()
//{
//	string s("hello world");
//	cout << s.size() << endl;
//	cout << s.capacity() << endl;
//
//	s.resize(20, 'a');
//	cout << s << endl;
//
//	return 0;
//}


//int main()
//{
//	string s("hello world");
//	cout << s.size() << endl;
//	cout << s.capacity() << endl;
//
//	s.resize(20);
//	cout << s.size() << endl;
//	cout << s.capacity() << endl;
//	cout << s << endl;
//
//	return 0;
//}



//int main()
//{
//	string s("hello world");
//	cout << s.size() << endl;
//	cout << s.capacity() << endl;
//
//	s.reserve(5);
//	cout << s.size() << endl;
//	cout << s.capacity() << endl;
//	cout << s << endl;
//
//	return 0;
//}



//int main()
//{
//	string s("hello world");
//	cout << s.size() << endl;
//	cout << s.capacity() << endl;
//
//	s.reserve(20);
//	cout << s.size() << endl;
//	cout << s.capacity() << endl;
//	cout << s << endl;
//
//	return 0;
//}




//int main()
//{
//	string s("hello world hello");
//	cout << s.size() << endl;
//	cout << s.capacity() << endl;
//	s.clear();
//	cout << s.size() << endl;
//	cout << s.capacity() << endl;
//
//	return 0;
//}



//int main()
//{
//	string s("xx");
//	string s1;
//	cout << s.empty() << endl;
//	cout << s1.empty() << endl;
//	return 0;
//}


//int main()
//{
//	string s("xx");
//	cout << s.size() << endl;
//	cout << s.capacity() << endl;
//	s.shrink_to_fit();
//	cout << s.size() << endl;
//	cout << s.capacity() << endl;
//
//	return 0;
//}



//int main()
//{
//	string s("hello world");
//	for (int i = 0; i < s.size(); i++)
//	{
//		cout << s[i];
//		++s[i];
//		cout << s.operator[](i);
//	}
//
//	return 0;
//}



//int main()
//{
//	string s("hello world");
//	for (int i = 0; i < s.size(); i++)
//	{
//		cout << s.at(i);
//		++s.at(i);
//		cout << s.at(i);
//	}
//
//	return 0;
//}



//int main()
//{
//	string s("hello world");
//	s.at(15);
//
//	return 0;
//}



//int main()
//{
//	string s("hello world");
//	s[15];
//
//	return 0;
//}



//int main()
//{
//	string s("hello world");
//	++s.front();
//	++s.back();
//	cout << s << endl;
//
//	return 0;
//}



//int main()
//{
//	string s("hello world");
//	string::reverse_iterator rit = s.rbegin();
//	while (rit != s.rend())
//	{
//		cout << *rit;
//		++(*rit);
//		cout << *rit;
//		++rit;
//	}
//
//	return 0;
//}



//int main()
//{
//	string s("hello world");
//	string tmp("xixi");
//	// 1.operator+= (const basic_string& str)
//	s += tmp;
//	cout << s << endl;
//	// 2.operator+= (const charT* s)
//	s += "hh";
//	cout << s << endl;
//	// 3.operator+= (charT c)
//	s += 'a';
//	cout << s << endl;
//
//	return 0;
//}




//int main()
//{
//	string s("hello world");
//	string tmp("xixi");
//	// 1.append (const basic_string& str)
//	s.append(tmp);
//	cout << s << endl;
//	// 2.append (const charT* s)
//	s.append("hh");
//	cout << s << endl;
//	// 3.append (size_type n, charT c)
//	s.append(3, 'a');
//	cout << s << endl;
//
//	return 0;
//}



//int main()
//{
//	string s("hello world");
//	s.push_back('a');
//	cout << s << endl;
//
//	return 0;
//}



//int main()
//{
//	string s("hello world");
//	string tmp("xixi");
//	cout << s.capacity() << endl;
//
//	// 1.assign (const basic_string& str)
//	s.assign(tmp);
//	cout << s << endl;
//	cout << s.capacity() << endl;
//
//	// 2.assign (const charT* s);
//	s.assign("hh");
//	cout << s << endl;
//	cout << s.capacity() << endl;
//
//	// 3.assign (size_type n, charT c);
//	s.assign(3, 'a');
//	cout << s << endl;
//	cout << s.capacity() << endl;
//
//	return 0;
//}



//int main()
//{
//	string s("hello world");
//	string tmp("xixi");
//
//	// 1.insert (size_type pos, const basic_string& str)
//	s.insert(1, tmp);
//	cout << s << endl;
//
//	// 2.insert (size_type pos, const charT* s);
//	s.insert(3, "hh");
//	cout << s << endl;
//
//	// 3.1 insert (size_type pos, size_type n, charT c);
//	s.insert(5, 4, 'a');
//	cout << s << endl;
//
//	// 3.2 void insert (iterator p, size_type n, charT c);
//	string::iterator it = s.begin();
//	s.insert(it + 2, 2, 'b');
//	cout << s << endl;
//
//	return 0;
//}



//int main()
//{
//	// 1.erase (size_type pos = 0, size_type len = npos)
//	string s1("hello world");
//	s1.erase(1, 5);
//	cout << s1 << endl;
//
//	s1.erase();
//	cout << s1 << endl;
//
//	// 2.erase (iterator p)
//	string s2("hello world");
//	string::iterator it = s2.begin();
//	s2.erase(it);
//	cout << s2 << endl;
//
//	// 3.erase (iterator first, iterator last)
//	string s3("hello world");
//	string::iterator it1 = s3.begin();
//	s3.erase(it1, it1 + 7);
//	cout << s3 << endl;
//
//	return 0;
//}




//int main()
//{
//	string s("hello world");
//	cout << s << endl;
//	string tmp("hh");
//	// 1.replace (size_type pos, size_type len, const basic_string& str)
//	s.replace(1, 2, tmp);
//	cout << s << endl;
//
//	// 2.replace (size_type pos, size_type len, const charT* s)
//	s.replace(3, 4, "aaaa");
//	cout << s << endl;
//
//	// 3.replace (size_type pos, size_type len, size_type n, charT c)
//	s.replace(7, 1, 3, 't');
//	cout << s << endl;
//
//	return 0;
//}



//int main()
//{
//	string s1("hello world hello");
//	string s2("xx");
//	cout << s1.capacity() << endl;
//	cout << s2.capacity() << endl;
//
//	s1.swap(s2);
//	cout << s1 << endl;
//	cout << s2 << endl;
//	cout << s1.capacity() << endl;
//	cout << s2.capacity() << endl;
//
//	return 0;
//}



//int main()
//{
//	string s("hello world hello");
//	s.pop_back();
//	cout << s << endl;
//
//	return 0;
//}



//int main()
//{
//	string s("hello world hello x");
//	int pos = s.find(" ");
//	while (pos != string::npos)
//	{
//		s.replace(pos, 1, "20%");
//		pos = s.find(" ");
//	}
//	cout << s << endl;
//
//	return 0;
//}



//int main()
//{
//	string s("hello world hello x");
//	string tmp;
//	tmp.reserve(s.size());
//	int i = 0;
//	for (auto ch : s)
//	{
//		if (ch != ' ')
//		{
//			tmp += ch;
//		}
//		else
//		{
//			tmp += "20%";
//		}
//	}
//	s.swap(tmp);
//	cout << s << endl;
//	return 0;
//}



//int main()
//{
//	string s("hello world hello x");
//	const char* p = s.c_str();
//	while (*p != '\0')
//	{
//		cout << *p;
//		p++;
//	}
//
//	return 0;
//}



//int main()
//{
//	string s("hello world hello x");
//	char* p = new char[10];
//	s.copy(p, 7, 0);
//
//	return 0;
//}



//int main()
//{
//	string s("hello world hello x");
//	char* p = new char[10]{ "abc" };
//	s.copy(p, 7, 2);
//
//	return 0;
//}



//int main()
//{
//	string s1("test.cpp");
//	string s2 = s1.substr(1, 3);
//	cout << s2 << endl;
//
//	return 0;
//}



//int main()
//{
//	string filename("test.cpp");
//	int pos = filename.find(".");
//	if (pos != string::npos)
//	{
//		string suffix = filename.substr(pos);
//		cout << suffix << endl;
//	}
//
//	return 0;
//}




//int main()
//{
//	string filename("test.cpp.tar.zip");
//	int pos = filename.rfind(".");
//	if (pos != string::npos)
//	{
//		string suffix = filename.substr(pos);
//		cout << suffix << endl;
//	}
//
//	return 0;
//}



int main()
{
	string s1("hhhh");
	string s2("hhaz");
	cout << (s1 < s2) << endl;
	cout << (s1 == s2) << endl;
	cout << (s1 > s2) << endl;

	return 0;
}

